package com.zndroid.gridview;

import androidx.annotation.DrawableRes;
import androidx.annotation.RawRes;

import java.io.File;
import java.io.Serializable;

/**
 * 本地图片和网络图片，择其一实现（优先本地图片）
 * 虽然有容错机制，但是还是请严格执行
 * @author lzy
 */
public interface IImageBean extends Serializable {
    ///////////////////// 网络图片方式 //////////////////
    /**
     * 网络图片方式的话：缩略图地址（优先显示）
     *
     * @return thumbnailUrl
     * */
    default String supplyThumbnailUrl() {return "";}
    /**
     * 网络图片方式的话：大图地址（全图）
     *
     * @return bigImageUrl
     * */
    default String supplyBigImageUrl() {return "";}

    ///////////////////// 本地图片方式（优先） //////////////////
    /**
     * 本地图片资源方式的话：本地资源id包括 RawRes or DrawableRes（优先本地资源id）
     *
     * @return RawRes or DrawableRes
     * */
    default @RawRes @DrawableRes int supplyResId() {return -1;}

    /**
     * 本地图片资源方式的话：本地文件
     * @return File
     * */
    default File supplyFile() {return null;}

    /**
     * 覆盖图层资源（目前仅支持本地资源）
     * @return res
     * */
    default @RawRes @DrawableRes int supplyCoverResId() {
        return -1;
    }
}
